/* eslint-disable no-undef */
// 地图创建处理js

// 地图创建 
export function createMap(id, config) {
  const viewer = nwh3d.createMap({
    id,
    data: config.map3d,
    serverURL: config.serverURL,
    success: Viewer => {
      console.log("%c🍎Success", "color:#fff;background:#0f0;padding:10px 15px;font-size: 24px", Viewer)
    }
  });
  return viewer;
}

// 初始化外部静态widget功能（兼容使用传统模式开发的一些widget）
export function initStaticWidget(viewer, widget) {

  console.log({ viewer, widget })

  nwh3d.widget.init(viewer, widget, "/");

  // stop -> 完成
  // loadBefore -> 完成加载，但未做任何其他处理前
  // load -> 完成加载，执行所有内部处理后

  // nwh3d.widget.on('stop', (abc) => {
  //   console.log("%c🏮Stop", "color:#fff;background:#0f0;padding:10px 15px;font-size: 24px", abc)
  // })
  // nwh3d.widget.on('loadBefore', (abc) => {
  //   console.log("%c🎇LoadBefore", "color:#fff;background:#0f0;padding:10px 15px;font-size: 24px", abc)
  // })
  // nwh3d.widget.on('load', (abc) => {
  //   console.log("%c🐕Load", "color:#fff;background:#0f0;padding:10px 15px;font-size: 24px", abc)
  // })

  // 绑定图层管理
  window.bindToLayerControl = options => {
    const layer = viewer.mars.addOperationalLayer(options);

    const manageLayersWidget = nwh3d.widget.getClass('widgets/manageLayers/widget.js');
    if (manageLayersWidget) manageLayersWidget.addOverlay(options);

    return layer;
  };

  // 取消绑定图层管理 ， 参数为bindToLayerControl返回的图层
  window.unbindLayerControl = layer => {
    viewer.mars.removeOperationalLayer(layer.config.id);

    const manageLayersWidget = nwh3d.widget.getClass('widgets/manageLayers/widget.js');
    if (manageLayersWidget) manageLayersWidget.removeLayer(layer.config.name);
  };
}
